//
//  View.hpp
//  C3W_Demo_By_Fan
//
//  Created by 范静涛 on 2024/7/22.
//

//------------------------------------------------------------------------------
//【文件名】View.hpp
//【功能模块和目的】界面类声明
//【开发者及日期】范静涛 2024/7/22
//【更改记录】
//------------------------------------------------------------------------------

#ifndef View_hpp
#define View_hpp

//std::string所属头文件
#include <string>

//------------------------------------------------------------------------------
//【类名】View
//【功能】界面类，显示菜单、与用户交换数据、调用Controller功能
//【接口说明】：除构外，均为虚函数，为的是派生可以快速修改菜单实现或添加功能
//    默认构造函数
//    虚析构函数（可能做基类）
//    显示主菜单
//    显示列出所有模型菜单
//    显示创建模型菜单
//    显示导入模型菜单
//    显示导出模型菜单
//    实现选择模型菜单
//    显示便捷模型菜单
//    显示列出模型菜单
//    显示添加面菜单
//    显示添加线菜单
//    显示删除面菜单
//    显示删除线菜单
//    显示编辑面上点菜单
//    显示编辑线上点菜单
//【开发者及日期】 范静涛 2024/7/22
//【更改记录】
//------------------------------------------------------------------------------
class View{
public:
    //默认构造函数
    View();
    //虚析构函数（可能做基类），无动态构造成员，默认实现
    virtual ~View() = default;
protected:
    //显示主菜单
    virtual std::string MainMenu() const;
    //显示列出所有模型菜单
    virtual std::string ListModelsMenu() const;
    //显示创建模型菜单
    virtual std::string CreateModelMenu() const;
    //显示导入模型菜单
    virtual std::string ImportModelMenu() const;
    //显示导出模型菜单
    virtual std::string ExportModelMenu() const;
    //实现选择模型菜单
    virtual std::string SelectModelMenu() const;
    //显示便捷模型菜单
    virtual std::string ModifyModelMenu() const;
    //显示列出模型菜单
    virtual std::string ListModelMenu() const;
    //显示添加面菜单
    virtual std::string AppendFaceMenu() const;
    //显示添加线菜单
    virtual std::string AppendLineMenu() const;
    //显示删除面菜单
    virtual std::string RemoveFaceMenu() const;
    //显示删除线菜单
    virtual std::string RemoveLineMenu() const;
    //显示编辑面上点菜单
    virtual std::string ModifyFacePointMenu() const;
    //显示编辑线上点菜单
    virtual std::string ModifyLinePointMenu() const;
};

#endif /* View_hpp */
